<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Navo Portable Library: navo/algorithm/nonlinear/binary/sblnk.h文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- 制作者 Doxygen 1.7.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
--></script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Navo Portable Library&#160;<span id="projectnumber">Ver 1.0.20120827</span></div>
   <div id="projectbrief">Provides generic platform independent facilities.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>首页</span></a></li>
      <li><a href="modules.html"><span>模块</span></a></li>
      <li><a href="annotated.html"><span>数据结构</span></a></li>
      <li class="current"><a href="files.html"><span>文件</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="搜索" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>文件列表</span></a></li>
      <li><a href="globals.html"><span>全局定义</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">数据结构</a> &#124;
<a href="#define-members">宏定义</a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
<a href="#func-members">函数</a>  </div>
  <div class="headertitle">
<h1>navo/algorithm/nonlinear/binary/sblnk.h文件参考</h1>  </div>
</div>
<div class="contents">

<p>Size-balanced linked tree.  
<a href="#_details">更多...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="cdef_8h_source.html">../../../port/cdef.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="integer_8h_source.html">../../../port/integer.h</a>&quot;</code><br/>
</div>
<p><a href="sblnk_8h_source.html">浏览该文件的源代码。</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
数据结构</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct____sblnk__node.html">__sblnk_node</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">大小平衡树节点  <a href="struct____sblnk__node.html#_details">更多...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsblnk__root.html">sblnk_root</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">树根  <a href="structsblnk__root.html#_details">更多...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsblnk__info.html">sblnk_info</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">树信息表  <a href="structsblnk__info.html#_details">更多...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
宏定义</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1757a5ef6cba59c04f7e443bb885dea5"></a><!-- doxytag: member="sblnk.h::__NV_SBLNK__" ref="a1757a5ef6cba59c04f7e443bb885dea5" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__NV_SBLNK__</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga77426ccc7b1fb7bb23e58872fba730c2">SBLNK_ROOT</a>(name)&#160;&#160;&#160;<a class="el" href="structsblnk__root.html">sblnk_root</a> name = {NULL}</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">定义一个名为name的树根，并对其初始化  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga77426ccc7b1fb7bb23e58872fba730c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga84848fd6b4aaa586f512407a61d41744">SBLNK_NODE</a>(name)&#160;&#160;&#160;<a class="el" href="struct____sblnk__node.html">sblnk_node</a> name = {NULL, NULL, NULL, 0}</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">定义一个名为name的节点，并对其初始化  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga84848fd6b4aaa586f512407a61d41744"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gad0c44e99f672d370c01aaac8c695c4de">SBLNK_INFO</a>(name)&#160;&#160;&#160;<a class="el" href="structsblnk__info.html">sblnk_info</a> name = {0, 0, 0}</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">定义一个名为name的树信息表，并对其初始化  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gad0c44e99f672d370c01aaac8c695c4de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8977419721a1b85610adb2634f136983"></a><!-- doxytag: member="sblnk.h::sblnk_inc" ref="ga8977419721a1b85610adb2634f136983" args="(itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga8977419721a1b85610adb2634f136983">sblnk_inc</a>(itr)&#160;&#160;&#160;((itr) = sblnk_next(itr))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器递增 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39f8da7ba1e44269c6ec1e7fb0125165"></a><!-- doxytag: member="sblnk.h::sblnk_dec" ref="ga39f8da7ba1e44269c6ec1e7fb0125165" args="(itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga39f8da7ba1e44269c6ec1e7fb0125165">sblnk_dec</a>(itr)&#160;&#160;&#160;((itr) = sblnk_prev(itr))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器递减 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf3d458264ca15b1c03e37cdbfc12049"></a><!-- doxytag: member="sblnk.h::sblnk_inc_later" ref="gabf3d458264ca15b1c03e37cdbfc12049" args="(itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gabf3d458264ca15b1c03e37cdbfc12049">sblnk_inc_later</a>(itr)&#160;&#160;&#160;__sblnk_inc_later(itr, &amp;(itr))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器后自增 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga348aac8583fc25ed39891d60d8790d63"></a><!-- doxytag: member="sblnk.h::sblnk_dec_later" ref="ga348aac8583fc25ed39891d60d8790d63" args="(itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga348aac8583fc25ed39891d60d8790d63">sblnk_dec_later</a>(itr)&#160;&#160;&#160;__sblnk_dec_later(itr, &amp;(itr))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器后自减 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga1d98dcdb6f4a7ed1ef8de3cf977c640f">sblnk_foreach</a>(_begin, _end, fn, type, member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">正向遍历_begin到_end的节点，并为每一个节点调用回调函数或宏  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga1d98dcdb6f4a7ed1ef8de3cf977c640f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga65b3b2936facf1872cb83f0f13734740">sblnk_reverse_foreach</a>(_rbegin, _rend, fn, type, member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">逆向遍历_begin到_end的节点，并为每一个节点调用回调函数或宏  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga65b3b2936facf1872cb83f0f13734740"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaa132699dadc3b4d6cf77a99778d502f8">SBLNK_RECURSE_PROC</a>(name, type, param)&#160;&#160;&#160;void name(type * param)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">定义递归遍历回调函数  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaa132699dadc3b4d6cf77a99778d502f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gac178eb532821851b0ccf99e70f89b857">sblnk_recurse_foreach</a>(root, fn, type, member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">正向递归遍历整个树  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gac178eb532821851b0ccf99e70f89b857"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga0fe27927107ab630345681e6d37096c5">sblnk_recurse_reverse_foreach</a>(root, fn, type, member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">逆向递归遍历整个树  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga0fe27927107ab630345681e6d37096c5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gac3f9e0c692066835cd57f562954e3d54">sblnk_search</a>(root, newly, greater, res, type, member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">搜索树中的某个节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gac3f9e0c692066835cd57f562954e3d54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9610155afa17d2c85e71f9548e255f6c">sblnk_insert</a>(root, newly, greater, res, type, member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">插入新节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9610155afa17d2c85e71f9548e255f6c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga87d6d30a36e8688e2bbcc5c349dc4bd5">sblnk_serialize</a>(root, buf, type, member)&#160;&#160;&#160;__sblnk_serialize(root, (void**)(buf), offset_of(type, member))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">将树进行序列化为一个有序序列  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga87d6d30a36e8688e2bbcc5c349dc4bd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga4bae9dc037366733482ee79511cbc2c4">sblnk_deserialize</a>(root, buf, cnt, type, member)&#160;&#160;&#160;__sblnk_deserialize(root, (char**)(buf), cnt, offset_of(type, member))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">根据树的序列进行反序列化为一个完整的树  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga4bae9dc037366733482ee79511cbc2c4"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
类型定义</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd146cf1a43aedc708dd063d3c7c1d21"></a><!-- doxytag: member="sblnk.h::sblnk_node" ref="gacd146cf1a43aedc708dd063d3c7c1d21" args="" -->
typedef struct <a class="el" href="struct____sblnk__node.html">__sblnk_node</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gacd146cf1a43aedc708dd063d3c7c1d21">sblnk_node</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">节点 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed239b78d6bc2fb4207b3139dc046294"></a><!-- doxytag: member="sblnk.h::sblnk_iter" ref="gaed239b78d6bc2fb4207b3139dc046294" args="" -->
typedef struct <a class="el" href="struct____sblnk__node.html">__sblnk_node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaed239b78d6bc2fb4207b3139dc046294">sblnk_iter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4af164439491a4ca79da044842819995"></a><!-- doxytag: member="sblnk.h::sblnk_pr1" ref="ga4af164439491a4ca79da044842819995" args=")(sblnk_node *)" -->
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga4af164439491a4ca79da044842819995">sblnk_pr1</a> )(<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">单参数回调函数指针 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa9b184f17ebd6de7ee301b2be4b40d50"></a><!-- doxytag: member="sblnk.h::sblnk_pr2" ref="gaa9b184f17ebd6de7ee301b2be4b40d50" args=")(sblnk_node *, sblnk_node *)" -->
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaa9b184f17ebd6de7ee301b2be4b40d50">sblnk_pr2</a> )(<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *, <a class="el" href="struct____sblnk__node.html">sblnk_node</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">双参数回调函数指针 <br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
函数</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gad792d3ec9e12043ac935238471075fd5">sblnk_distance</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> first, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计算两个节点的迭代距离  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gad792d3ec9e12043ac935238471075fd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga85091b37cced90e27aace1ed466f15b9">sblnk_index_of</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计算迭代器的正向索引  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga85091b37cced90e27aace1ed466f15b9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gabe9efb0165493808f4e6896a70eda6de">sblnk_reverse_index_of</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计算迭代器的逆向索引  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gabe9efb0165493808f4e6896a70eda6de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga0d2affd3956b699ba994f82a13b3cf2b">sblnk_depth</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计算树的深度  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga0d2affd3956b699ba994f82a13b3cf2b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gab7ece6c8087440945d0a50d8cd81b423">sblnk_leafs</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计算树的叶子数  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gab7ece6c8087440945d0a50d8cd81b423"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaf5442bb764fe7fd9ff8d796dff0551e0">sblnk_get_info</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="structsblnk__info.html">sblnk_info</a> *info)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取树的信息，包括节点数、深度、叶子数  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaf5442bb764fe7fd9ff8d796dff0551e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga19c2e9e6ec1788d13f34c1f230b47d02">sblnk_maintain</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node, <a class="el" href="struct____sblnk__node.html">sblnk_node</a> *parent)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">插入节点后，对树进行调整  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga19c2e9e6ec1788d13f34c1f230b47d02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga87e9e7a65a0850fb3b02455a2a9e54d2">sblnk_erase</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="struct____sblnk__node.html">sblnk_node</a> *entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">移除某个节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga87e9e7a65a0850fb3b02455a2a9e54d2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9028bdd9eb8000ed59e1a512af48a37a">sblnk_erases</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> begin, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> end, <a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga4af164439491a4ca79da044842819995">sblnk_pr1</a> erase_handler)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">移除区域内的节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9028bdd9eb8000ed59e1a512af48a37a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gad68cb541128675d3c8a165e6d0d4d229">sblnk_init</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">初始化树根  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gad68cb541128675d3c8a165e6d0d4d229"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga8b2053d41e14a1f256bbf06168ec97fe">sblnk_empty</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断树是否为空  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga8b2053d41e14a1f256bbf06168ec97fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga15aa827c355d6b74177650a5bf0ba003"></a><!-- doxytag: member="sblnk.h::__sblnk_singular" ref="ga15aa827c355d6b74177650a5bf0ba003" args="(sblnk_node *root)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_singular</b> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *root)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gabbfd4bc4031072dd875a16e2eef0e18c">sblnk_singular</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断树是否只有单个节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gabbfd4bc4031072dd875a16e2eef0e18c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9ade2ee98cf812276ab751ead800e5bc">sblnk_serialable</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断树是否可以序列化  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9ade2ee98cf812276ab751ead800e5bc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaba95ad50292f4f70318301ff32cea16f"></a><!-- doxytag: member="sblnk.h::__sblnk_count" ref="gaba95ad50292f4f70318301ff32cea16f" args="(sblnk_node *root)" -->
static size_t&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_count</b> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *root)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga70443373b0ae8f6e9c8dbd01ab276d8b">sblnk_count</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取树的节点总数  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga70443373b0ae8f6e9c8dbd01ab276d8b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gab12dea4f3e2f3ab2709e8c458056f6b2">sblnk_left</a> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到左子节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gab12dea4f3e2f3ab2709e8c458056f6b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2238721162bee093678cdd7aecb11990">sblnk_right</a> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到右子节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2238721162bee093678cdd7aecb11990"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2b84c86f24154173661a6b15a7f8392f">sblnk_parent</a> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到父节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2b84c86f24154173661a6b15a7f8392f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2c8271615d973239ac49bc721263ffd4">sblnk_size</a> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到节点的子树大小  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2c8271615d973239ac49bc721263ffd4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga80e18a0fd09125d1fd04c420848adee6">sblnk_is_root</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断当前节点是否是根节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga80e18a0fd09125d1fd04c420848adee6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga279e84ec3fd30ebd6ab8a2bec720c320">sblnk_is_leaf</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断当前节点是否是叶子节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga279e84ec3fd30ebd6ab8a2bec720c320"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaf89a0ca64b9f9d4c9ce25487e19f1267">sblnk_link</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> newly, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> parent, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> *plink)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">链接两个节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaf89a0ca64b9f9d4c9ce25487e19f1267"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga8b3e8e509ef35403fb8f80a7e9bba5fd">sblnk_set_size</a> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node, size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">设置当前节点子树大小域  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga8b3e8e509ef35403fb8f80a7e9bba5fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga570d0615947869f006d217e1c5b68685">sblnk_set_parent_if</a> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node, <a class="el" href="struct____sblnk__node.html">sblnk_node</a> *parent)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">仅在node不为空时，设置node的父节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga570d0615947869f006d217e1c5b68685"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gab1ec464fdb4d8c762425fc30448423f4">sblnk_node_init</a> (<a class="el" href="struct____sblnk__node.html">sblnk_node</a> *node)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">初始化节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gab1ec464fdb4d8c762425fc30448423f4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga69c71476514321a8f598476d19a98881">sblnk_iter_replace</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> victim, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> newly)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">用新节点替换旧节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga69c71476514321a8f598476d19a98881"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaa1ba8199bbb594b59527ee4e8aa1adc4">sblnk_replace</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *victim, <a class="el" href="structsblnk__root.html">sblnk_root</a> *newly)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">用新的树根替换旧树根  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaa1ba8199bbb594b59527ee4e8aa1adc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaa043d0e47f0f41e427e86d0da566ae97">sblnk_swap</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *a, <a class="el" href="structsblnk__root.html">sblnk_root</a> *b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">交换两个树  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaa043d0e47f0f41e427e86d0da566ae97"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga196f18e5e1116a4b96e7dcee0d12db2f">sblnk_exist</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断一个节点是否存在于树中  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga196f18e5e1116a4b96e7dcee0d12db2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga6a4cbf6a15d0b9d42017614238b1e0d9">sblnk_at</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, size_t index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到正向索引对应的节点的迭代器  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga6a4cbf6a15d0b9d42017614238b1e0d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga93f0b4b21761403ead1bd49a0541b412">sblnk_reverse_at</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, size_t index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到逆向索引对应的节点的迭代器  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga93f0b4b21761403ead1bd49a0541b412"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gac564d8aed1991fbf0c3f55bbb4edc709">sblnk_front</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到树的最左端节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gac564d8aed1991fbf0c3f55bbb4edc709"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaef991ca0f842b85f5ac97941545c025e">sblnk_back</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到树的最右端节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaef991ca0f842b85f5ac97941545c025e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaef5561f1a6e6865d29d001bb05b81d2f">sblnk_begin</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向正向起始位置的迭代器  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gaef5561f1a6e6865d29d001bb05b81d2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gadb2f7b60f1f386ec7c25e5ad89ac5be2">sblnk_end</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向正向终止位置的迭代器  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#gadb2f7b60f1f386ec7c25e5ad89ac5be2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9deff7b11edfb7af28fa3e50455628bd">sblnk_end_of</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到当前迭代器的正向终止位置  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9deff7b11edfb7af28fa3e50455628bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9d5419a171f3b9789e64620f24f122db">sblnk_rbegin</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向逆向起始位置的迭代器  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga9d5419a171f3b9789e64620f24f122db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga1a03a537ea85b8ffdd4a8b889939df2e">sblnk_rend</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向逆向终止位置的迭代器  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga1a03a537ea85b8ffdd4a8b889939df2e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2f9706ee0e9db48af435fc2316ff8999">sblnk_rend_of</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到当前迭代器的逆向终止位置  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga2f9706ee0e9db48af435fc2316ff8999"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga6bd50f36005fd9ae83c23d0446f79b90">sblnk_next</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到当前节点的中序后继节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga6bd50f36005fd9ae83c23d0446f79b90"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga57c68614024a3a41fc416490d9be9f0e">sblnk_prev</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到当前节点的中序前驱节点  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga57c68614024a3a41fc416490d9be9f0e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">NV_API <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga1bc124c75a57627dad7af5cff4588bdb">sblnk_advance</a> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur, int dist)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">给迭代器增加一段距离或减小一段距离  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga1bc124c75a57627dad7af5cff4588bdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga0c4657b6e570cc5db49102522b162a80">sblnk_clear</a> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, <a class="el" href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga4af164439491a4ca79da044842819995">sblnk_pr1</a> erase_handler)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">清空树  <a href="group___xE5_xA4_xA7_xE5_xB0_x8F_xE5_xB9_xB3_xE8_xA1_xA1_xE6_xA0_x91.html#ga0c4657b6e570cc5db49102522b162a80"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga30f55e0b1823bba1a268137fff468f64"></a><!-- doxytag: member="sblnk.h::__sblnk_inc_later" ref="ga30f55e0b1823bba1a268137fff468f64" args="(sblnk_iter cur, sblnk_iter *p)" -->
static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_inc_later</b> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> *p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2c5944b8ad45959e83693a369b9532df"></a><!-- doxytag: member="sblnk.h::__sblnk_dec_later" ref="ga2c5944b8ad45959e83693a369b9532df" args="(sblnk_iter cur, sblnk_iter *p)" -->
static <a class="el" href="struct____sblnk__node.html">sblnk_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_dec_later</b> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur, <a class="el" href="struct____sblnk__node.html">sblnk_iter</a> *p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6201ee2be60e7c96ff1bfbb49b11ab50"></a><!-- doxytag: member="sblnk.h::__do_sblnk_recurse_foreach" ref="ga6201ee2be60e7c96ff1bfbb49b11ab50" args="(sblnk_iter cur, void(*fn)(void *), size_t offset)" -->
NV_API void&#160;</td><td class="memItemRight" valign="bottom"><b>__do_sblnk_recurse_foreach</b> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur, void(*fn)(void *), size_t offset)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4ae8c069e944daa94c9af719a6e8baea"></a><!-- doxytag: member="sblnk.h::__do_sblnk_recurse_reverse_foreach" ref="ga4ae8c069e944daa94c9af719a6e8baea" args="(sblnk_iter cur, void(*fn)(void *), size_t offset)" -->
NV_API void&#160;</td><td class="memItemRight" valign="bottom"><b>__do_sblnk_recurse_reverse_foreach</b> (<a class="el" href="struct____sblnk__node.html">sblnk_iter</a> cur, void(*fn)(void *), size_t offset)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0d7a7603fed32b3885b3d0c325c72cdc"></a><!-- doxytag: member="sblnk.h::__sblnk_recurse_foreach" ref="ga0d7a7603fed32b3885b3d0c325c72cdc" args="(sblnk_root *root, void(*fn)(void *), size_t offset)" -->
static void&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_recurse_foreach</b> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, void(*fn)(void *), size_t offset)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad146d7199a2dab2cbaf0afa77ff3d840"></a><!-- doxytag: member="sblnk.h::__sblnk_recurse_reverse_foreach" ref="gad146d7199a2dab2cbaf0afa77ff3d840" args="(sblnk_root *root, void(*fn)(void *), size_t offset)" -->
static void&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_recurse_reverse_foreach</b> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, void(*fn)(void *), size_t offset)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga648a26023321b0e3362f1371f3c9550e"></a><!-- doxytag: member="sblnk.h::__sblnk_serialize" ref="ga648a26023321b0e3362f1371f3c9550e" args="(sblnk_root *root, void **buf, size_t offset)" -->
NV_API void&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_serialize</b> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, void **buf, size_t offset)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07fc6f35c06e0f89d9d8124040095740"></a><!-- doxytag: member="sblnk.h::__sblnk_deserialize" ref="ga07fc6f35c06e0f89d9d8124040095740" args="(sblnk_root *root, char **buf, size_t cnt, size_t offset)" -->
NV_API void&#160;</td><td class="memItemRight" valign="bottom"><b>__sblnk_deserialize</b> (<a class="el" href="structsblnk__root.html">sblnk_root</a> *root, char **buf, size_t cnt, size_t offset)</td></tr>
</table>
<hr/><a name="_details"></a><h2>详细描述</h2>
<div class="textblock"><p>Size-balanced linked tree. </p>
<p>Copyright (C) 2012-2022, Henry Kwok 郭弘扬. All rights reserved </p>

<p>在文件<a class="el" href="sblnk_8h_source.html">sblnk.h</a>中定义。</p>
</div></div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>全部</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>数据结构</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>文件</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>函数</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>变量</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>类型定义</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>宏定义</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Generated at 2015年七月16日 星期四 12:00:40 for Navo Portable Library by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>
